package de.iritgo.skillfull.component.motion;

import java.awt.Point;

import de.iritgo.skillfull.component.MotionComponent;

/**
 * The move rotation component set the right angle for the movement
 * 
 * @author held
 *
 */
public interface MoveRotationComponent extends MotionComponent
{
	/**
	 * The dst to move
	 * 
	 * @param destination The dst
	 */
	public void moveTo (Point destination); 
	
	/**
	 * The move to a direction
	 * 
	 * @param destination The direction
	 */
	public void moveTo (float direction); 

	/**
	 * Dst reached
	 * @return true or false
	 */
	public boolean dstReached ();

	/**
	 * Get the destionation rotation
	 * 
	 * @return The angle
	 */
	public float getDstRotation(); 

	/**
	 * Set the rotation
	 * 
	 * @param dstRotation The angle
	 */
	public void setDstRotation(float dstRotation); 

	/**
	 * Get the current rotation
	 * 
	 * @return The current rotation
	 */
	public float getCurrentRotation();

	/**
	 * Set the current rotation
	 * 
	 * @param rotation The current rotation
	 */
	public void setCurrentRotation (float rotation);

	/**
	 * Stop the rotation 
	 */
	public void stop ();
}
